The disclosures herein relate generally to processors, and more specifically, to processors that employ instruction issue queue dependency management.
Modern information handling systems (IHSs) often execute instructions out-of-order to achieve greater processing efficiency. Because out-of-order instruction handling is common in modern IHSs, processors typically track the dependencies between instructions that issue to execution units from an issue unit within the processor. An issue unit may include multiple issue queues that store instructions for execution and maintain relative instruction dependency information. Relative instruction dependency information may include dependency information of a particular instruction in one issue queue to that of another instruction in a different issue queue of the issue unit. An instruction that is dependent upon the results of another instruction is one type of a “consumer” instruction. The instruction providing results that the consumer instruction depends upon is one type of “producer” instruction. Producer and consumer instructions may reside within the same issue queue or between multiple issues queues within a processor issue unit.
The dependencies of a consumer instruction may include data dependencies, address dependencies, and other dependencies. A particular consumer instruction may issue to an execution unit when the processor determines that the dependencies for that particular consumer instruction are met. That particular consumer instruction may issue to an execution unit within the processor for further processing. The issue queue that issues a producer instruction to an execution unit may issue a register tag (RTAG) broadcast for that producer instruction. The RTAG, register tag, or register identifier of an issuing producer instruction identifies the particular register that a consumer instruction may require as a dependency. The RTAG broadcast may communicate to all instructions of the issue unit, such as a particular consumer instruction. The particular consumer instruction “wakes up” upon the broadcast of the RTAG that that particular consumer instruction requires. On the next processor cycle, that particular consumer instruction may issue since the register information it requires is available. The issue queue that manages a particular consumer instruction may issue that consumer instruction for execution when all dependencies for that consumer instruction are met.